/*
Automatic clinic tests using a robot arm.
Copyright (C) 2010  CIC-CPC, CHU Gabriel Montpied
All other trademarks, logos and copyrights are the property
of their respective owners.

This file is part of cpc-painbot.

cpc-painbot is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

cpc-painbot is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with cpc-painbot.  If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef WIDGETINDICATEUR_H
#define WIDGETINDICATEUR_H

#include <QWidget>

#include "Widgets_global.h"

namespace Ui {
    class WidgetIndicateur;
}

class IndicateurProcess;
class Capteur;

/*! Front-end pour l'indicateur de Process.
    Gère graphiquement un indicateur de process
    qui lui est attaché.
*/
class WIDGETSSHARED_EXPORT WidgetIndicateur : public QWidget {
    Q_OBJECT
public:
    WidgetIndicateur(QWidget *parent = 0);
    ~WidgetIndicateur();

    IndicateurProcess *indicateur() const { return indicateur_; }
    Capteur *capteur() const { return capteur_; }

public slots:
    //!< Génère la liste des ports série disponibles.
    void genererListePorts();

protected:
    void changeEvent(QEvent *e);

private slots:
    //!< Actualise la mesure affichée.
    void actualiserMesure(const QVariant &mesure);
    void actualiserMinimum(qreal min);
    void actualiserMaximum(qreal max);
    void actualiserTare(qreal tare);

private:
    Ui::WidgetIndicateur *ui;
    IndicateurProcess *indicateur_;
    Capteur *capteur_;
};

#endif // WIDGETINDICATEUR_H
